<h1>Contributing</h1>

<p> XORP is an open source project: we <u>want</u> people to
contribute.  We'd like to build a community of users and a community
of developers.  Please post to the <a href="mailing_lists.html">Mailing
Lists</a> to discuss any work you are considering.

<p>Listed below are a few areas where contributions could usefully be
made now.  If you are interested in these, have additional
suggestions, or are generally interested in getting involved, we'd
like to hear from you. It could be that someone is already working
on some of the items, so always send an email before starting the work.

<h2>General</h2>

<ul>
  <li><b>Feedback on the ease of getting started.</b>
    <p>Any contributions that may help others get started.
</ul>

<h2>Licensing and Copyright</h2>

    <p>
      Code contributed to XORP is licensed under the GPL
      and copyright ownership stays with the contributor.
    </p>

<h2>Code contributions</h2>

<ul>
  <li> <b>Code reviews.</b>
  <p> Pick a module.  Look it over.  Read the source.  Read the
      kdoc documentation (see ${XORP}/docs/kdoc).  Compare and
      contrast the design documents (under ${XORP}/docs) with the
      code.  Code reviews are most welcome. </p>

  <li><b>Scripting language support.</b>

  <p>It would be great to be able to call XORP code from other
     languages.  One way this might be done for maximal benefit
     and moderate effort would to use <a
     href="http://swig.sourceforge.net">SWIG</a>.  SWIG generates
     wrappers for C and C++ code allowing it to be called from a
     wide range of scripting languages.</p>

  <li><b>Adding multicast support to
    <a href="http://www.read.cs.ucla.edu/click/">Click</a>.</b>
    <p>This is a Click-oriented item, but would benefit XORP
	and potentially benefit other multicast projects.</p>
  </li>

  <li>
    <b>Design and development of a multicast testing framework.</b>
  </li>

  <li>
    <b>Wireless access router.</b>
    <p>For example, an integration of dhcpd, firewall, web interface, and an
     AAA server into the XORP framework.</p>
  </li>

  <li>
    <b>Web interface for XORP.</b>
    <p>People like Web interfaces. Also, they can be used for cool demos.</p>
  </li>

</ul>

<h2>Documentation</h2>
<ul>
  <li><b>Developer API documentation reviews and feedback.</b>

	<p>kdoc comments are embedded in the C++ header files and
	turned into html documentation using kdoc.  This documentation
	is always a work-in-progress and always has room for improvement.
	Feedback and patches are welcome. </p>

	<li><b>Design documentation.</b>
	<p> Design documents are available online
        <a href="design_docs.html">here</a> and are accessible in the
	source tree under <tt>${XORP}/docs</tt>.  If you have the time please
	read them over, and feel free to make suggestions, point out areas of
	ambiguity, and inconsistencies, etc. </p>
  </li>

    <li><b>Web site design.</b>
	<p>As with everything in this project, the web pages are
	   available in the main source repository.  The web site tends to
	   undergo &quot;development&quot; in the run up to releases
	   and remain relatively static the rest of the time. </p>

 </ul>
